#pragma once

class ExportXSkinLib XBSTR
{
public:
    XBSTR();
    XBSTR(_In_opt_ LPCOLESTR pSrc);
    XBSTR(_In_ const XBSTR& src);
    XBSTR& operator=(_In_ const XBSTR& src);

    ~XBSTR();

    XBSTR& operator=(_In_opt_ LPCOLESTR pSrc);
    bool operator==(_In_opt_ LPCOLESTR pSrc);

    operator BSTR() const;
    BSTR* operator&();

protected:
    void SetBSTR(const BSTR bstr);

protected:
    BSTR m_str;
};
